#ifndef _INCLUDE_JP_KEIJIRO_NOISESHADER_COMMON_HLSL_ #define _INCLUDE_JP_KEIJIRO_NOISESHADER_COMMON_HLSL_ float wglnoise_mod(float x, float y) { return x - y * floor(x / y); } float2 wglnoise_mod(float2 x, float2 y) { return x - y * floor(x / y); } float3 wglnoise_mod(float3 x, float3 y) { return x - y * floor(x / y); } float4 wglnoise_mod(float4 x, float4 y) { return x - y * floor(x / y); } float2 wglnoise_fade(float2 t) { return t * t * t * (t * (t * 6 - 15) + 10); } float3 wglnoise_fade(float3 t) { return t * t * t * (t * (t * 6 - 15) + 10); } float wglnoise_mod289(float x) { return x - floor(x / 289) * 289; } float2 wglnoise_mod289(float2 x) { return x - floor(x / 289) * 289; } float3 wglnoise_mod289(float3 x) { return x - floor(x / 289) * 289; } float4 wglnoise_mod289(float4 x) { return x - floor(x / 289) * 289; } float3 wglnoise_permute(float3 x) { return wglnoise_mod289((x * 34 + 1) * x); } float4 wglnoise_permute(float4 x) { return wglnoise_mod289((x * 34 + 1) * x); } #endif